package cn.jsu.oj.judgment.pojo;

import cn.jsu.oj.judgment.parsing.NoSerialize;
import cn.jsu.oj.judgment.parsing.PackType;

@PackType(typeNo = 16)
public class RealTaskInfo extends AbstractPack{
    //任务是否是优先任务
    @NoSerialize
    private boolean taskPriority;

    //语言类型
    private byte languageType;

    //判题模式
    private byte judgeModel;

    //题目ID
    private String subjectId;

    //流水号
    private long serialNumber;

    ///源代码
    private String sourceCode;

    //任务权值
    @NoSerialize
    private int taskWeight;

    //最大运行时间
    private int maxRunningTime;

    //最大运行内存kb
    private int maxRunningMemory;

    public RealTaskInfo() {
    }

    @Override
    public String toString() {
      return "QuestionTaskInformation{" +
          "taskPriority=" + taskPriority +
          ", languageType=" + languageType +
          ", judgeModel=" + judgeModel +
          ", subjectId='" + subjectId + '\'' +
          ", serialNumber=" + serialNumber +
          ", sourceCode='" + sourceCode + '\'' +
          ", taskWeight=" + taskWeight +
          ", maxRunningTime=" + maxRunningTime +
          ", maxRunningMemory=" + maxRunningMemory +
          '}';
    }

    public RealTaskInfo(boolean taskPriority) {
        this.taskPriority = taskPriority;
    }

    public RealTaskInfo(boolean taskPriority, byte languageType, byte judgeModel, String subjectId, long serialNumber, String sourceCode, int taskWeight, int maxRunningTime, int maxRunningMemory) {
        this.taskPriority = taskPriority;
        this.languageType = languageType;
        this.judgeModel = judgeModel;
        this.subjectId = subjectId;
        this.serialNumber = serialNumber;
        this.sourceCode = sourceCode;
        this.taskWeight = taskWeight;
        this.maxRunningTime = maxRunningTime;
        this.maxRunningMemory = maxRunningMemory;
    }

    public String getsubjectId() {
        return subjectId;
    }

    public void setsubjectId(String subjectId) {
        this.subjectId = subjectId;
    }

    public boolean isTaskPriority() {
        return taskPriority;
    }

    public void setTaskPriority(boolean taskPriority) {
        this.taskPriority = taskPriority;
    }

    public byte getLanguageType() {
        return languageType;
    }

    public void setLanguageType(byte languageType) {
        this.languageType = languageType;
    }

    public byte getJudgeModel() {
        return judgeModel;
    }

    public void setJudgeModel(byte judgeModel) {
        this.judgeModel = judgeModel;
    }

    public long getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(long serialNumber) {
        this.serialNumber = serialNumber;
    }

    public String getSourceCode() {
        return sourceCode;
    }

    public void setSourceCode(String sourceCode) {
        this.sourceCode = sourceCode;
    }

    public int getTaskWeight() {
        return taskWeight;
    }

    public void setTaskWeight(int taskWeight) {
        this.taskWeight = taskWeight;
    }

    public int getMaxRunningTime() {
        return maxRunningTime;
    }

    public void setMaxRunningTime(int maxRunningTime) {
        this.maxRunningTime = maxRunningTime;
    }

    public int getMaxRunningMemory() {
        return maxRunningMemory;
    }

    public void setMaxRunningMemory(int maxRunningMemory) {
        this.maxRunningMemory = maxRunningMemory;
    }
}
